#ifndef BLAS_H
#define BLAS_H

#ifdef __cplusplus
extern "C"
{
#endif

#define BLASFUNC(FUNC) FUNC##_

#ifdef __WIN64__
	typedef long long BLASLONG;
	typedef unsigned long long BLASULONG;
#else
typedef long BLASLONG;
typedef unsigned long BLASULONG;
#endif

	int BLASFUNC(xerbla)(const char*, int* info, int);

	float BLASFUNC(sdot)(int*, float*, int*, float*, int*);
	float BLASFUNC(sdsdot)(int*, float*, float*, int*, float*, int*);

	double BLASFUNC(dsdot)(int*, float*, int*, float*, int*);
	double BLASFUNC(ddot)(int*, double*, int*, double*, int*);
	double BLASFUNC(qdot)(int*, double*, int*, double*, int*);

	int BLASFUNC(cdotuw)(int*, float*, int*, float*, int*, float*);
	int BLASFUNC(cdotcw)(int*, float*, int*, float*, int*, float*);
	int BLASFUNC(zdotuw)(int*, double*, int*, double*, int*, double*);
	int BLASFUNC(zdotcw)(int*, double*, int*, double*, int*, double*);

	int BLASFUNC(saxpy)(const int*, const float*, const float*, const int*, float*, const int*);
	int BLASFUNC(daxpy)(const int*, const double*, const double*, const int*, double*, const int*);
	int BLASFUNC(qaxpy)(const int*, const double*, const double*, const int*, double*, const int*);
	int BLASFUNC(caxpy)(const int*, const float*, const float*, const int*, float*, const int*);
	int BLASFUNC(zaxpy)(const int*, const double*, const double*, const int*, double*, const int*);
	int BLASFUNC(xaxpy)(const int*, const double*, const double*, const int*, double*, const int*);
	int BLASFUNC(caxpyc)(const int*, const float*, const float*, const int*, float*, const int*);
	int BLASFUNC(zaxpyc)(const int*, const double*, const double*, const int*, double*, const int*);
	int BLASFUNC(xaxpyc)(const int*, const double*, const double*, const int*, double*, const int*);

	int BLASFUNC(scopy)(int*, float*, int*, float*, int*);
	int BLASFUNC(dcopy)(int*, double*, int*, double*, int*);
	int BLASFUNC(qcopy)(int*, double*, int*, double*, int*);
	int BLASFUNC(ccopy)(int*, float*, int*, float*, int*);
	int BLASFUNC(zcopy)(int*, double*, int*, double*, int*);
	int BLASFUNC(xcopy)(int*, double*, int*, double*, int*);

	int BLASFUNC(sswap)(int*, float*, int*, float*, int*);
	int BLASFUNC(dswap)(int*, double*, int*, double*, int*);
	int BLASFUNC(qswap)(int*, double*, int*, double*, int*);
	int BLASFUNC(cswap)(int*, float*, int*, float*, int*);
	int BLASFUNC(zswap)(int*, double*, int*, double*, int*);
	int BLASFUNC(xswap)(int*, double*, int*, double*, int*);

	float BLASFUNC(sasum)(int*, float*, int*);
	float BLASFUNC(scasum)(int*, float*, int*);
	double BLASFUNC(dasum)(int*, double*, int*);
	double BLASFUNC(qasum)(int*, double*, int*);
	double BLASFUNC(dzasum)(int*, double*, int*);
	double BLASFUNC(qxasum)(int*, double*, int*);

	int BLASFUNC(isamax)(int*, float*, int*);
	int BLASFUNC(idamax)(int*, double*, int*);
	int BLASFUNC(iqamax)(int*, double*, int*);
	int BLASFUNC(icamax)(int*, float*, int*);
	int BLASFUNC(izamax)(int*, double*, int*);
	int BLASFUNC(ixamax)(int*, double*, int*);

	int BLASFUNC(ismax)(int*, float*, int*);
	int BLASFUNC(idmax)(int*, double*, int*);
	int BLASFUNC(iqmax)(int*, double*, int*);
	int BLASFUNC(icmax)(int*, float*, int*);
	int BLASFUNC(izmax)(int*, double*, int*);
	int BLASFUNC(ixmax)(int*, double*, int*);

	int BLASFUNC(isamin)(int*, float*, int*);
	int BLASFUNC(idamin)(int*, double*, int*);
	int BLASFUNC(iqamin)(int*, double*, int*);
	int BLASFUNC(icamin)(int*, float*, int*);
	int BLASFUNC(izamin)(int*, double*, int*);
	int BLASFUNC(ixamin)(int*, double*, int*);

	int BLASFUNC(ismin)(int*, float*, int*);
	int BLASFUNC(idmin)(int*, double*, int*);
	int BLASFUNC(iqmin)(int*, double*, int*);
	int BLASFUNC(icmin)(int*, float*, int*);
	int BLASFUNC(izmin)(int*, double*, int*);
	int BLASFUNC(ixmin)(int*, double*, int*);

	float BLASFUNC(samax)(int*, float*, int*);
	double BLASFUNC(damax)(int*, double*, int*);
	double BLASFUNC(qamax)(int*, double*, int*);
	float BLASFUNC(scamax)(int*, float*, int*);
	double BLASFUNC(dzamax)(int*, double*, int*);
	double BLASFUNC(qxamax)(int*, double*, int*);

	float BLASFUNC(samin)(int*, float*, int*);
	double BLASFUNC(damin)(int*, double*, int*);
	double BLASFUNC(qamin)(int*, double*, int*);
	float BLASFUNC(scamin)(int*, float*, int*);
	double BLASFUNC(dzamin)(int*, double*, int*);
	double BLASFUNC(qxamin)(int*, double*, int*);

	float BLASFUNC(smax)(int*, float*, int*);
	double BLASFUNC(dmax)(int*, double*, int*);
	double BLASFUNC(qmax)(int*, double*, int*);
	float BLASFUNC(scmax)(int*, float*, int*);
	double BLASFUNC(dzmax)(int*, double*, int*);
	double BLASFUNC(qxmax)(int*, double*, int*);

	float BLASFUNC(smin)(int*, float*, int*);
	double BLASFUNC(dmin)(int*, double*, int*);
	double BLASFUNC(qmin)(int*, double*, int*);
	float BLASFUNC(scmin)(int*, float*, int*);
	double BLASFUNC(dzmin)(int*, double*, int*);
	double BLASFUNC(qxmin)(int*, double*, int*);

	int BLASFUNC(sscal)(int*, float*, float*, int*);
	int BLASFUNC(dscal)(int*, double*, double*, int*);
	int BLASFUNC(qscal)(int*, double*, double*, int*);
	int BLASFUNC(cscal)(int*, float*, float*, int*);
	int BLASFUNC(zscal)(int*, double*, double*, int*);
	int BLASFUNC(xscal)(int*, double*, double*, int*);
	int BLASFUNC(csscal)(int*, float*, float*, int*);
	int BLASFUNC(zdscal)(int*, double*, double*, int*);
	int BLASFUNC(xqscal)(int*, double*, double*, int*);

	float BLASFUNC(snrm2)(int*, float*, int*);
	float BLASFUNC(scnrm2)(int*, float*, int*);

	double BLASFUNC(dnrm2)(int*, double*, int*);
	double BLASFUNC(qnrm2)(int*, double*, int*);
	double BLASFUNC(dznrm2)(int*, double*, int*);
	double BLASFUNC(qxnrm2)(int*, double*, int*);

	int BLASFUNC(srot)(int*, float*, int*, float*, int*, float*, float*);
	int BLASFUNC(drot)(int*, double*, int*, double*, int*, double*, double*);
	int BLASFUNC(qrot)(int*, double*, int*, double*, int*, double*, double*);
	int BLASFUNC(csrot)(int*, float*, int*, float*, int*, float*, float*);
	int BLASFUNC(zdrot)(int*, double*, int*, double*, int*, double*, double*);
	int BLASFUNC(xqrot)(int*, double*, int*, double*, int*, double*, double*);

	int BLASFUNC(srotg)(float*, float*, float*, float*);
	int BLASFUNC(drotg)(double*, double*, double*, double*);
	int BLASFUNC(qrotg)(double*, double*, double*, double*);
	int BLASFUNC(crotg)(float*, float*, float*, float*);
	int BLASFUNC(zrotg)(double*, double*, double*, double*);
	int BLASFUNC(xrotg)(double*, double*, double*, double*);

	int BLASFUNC(srotmg)(float*, float*, float*, float*, float*);
	int BLASFUNC(drotmg)(double*, double*, double*, double*, double*);

	int BLASFUNC(srotm)(int*, float*, int*, float*, int*, float*);
	int BLASFUNC(drotm)(int*, double*, int*, double*, int*, double*);
	int BLASFUNC(qrotm)(int*, double*, int*, double*, int*, double*);

	/* Level 2 routines */

	int BLASFUNC(sger)(int*, int*, float*, float*, int*, float*, int*, float*, int*);
	int BLASFUNC(dger)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
	int BLASFUNC(qger)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
	int BLASFUNC(cgeru)(int*, int*, float*, float*, int*, float*, int*, float*, int*);
	int BLASFUNC(cgerc)(int*, int*, float*, float*, int*, float*, int*, float*, int*);
	int BLASFUNC(zgeru)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
	int BLASFUNC(zgerc)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
	int BLASFUNC(xgeru)(int*, int*, double*, double*, int*, double*, int*, double*, int*);
	int BLASFUNC(xgerc)(int*, int*, double*, double*, int*, double*, int*, double*, int*);

	int BLASFUNC(sgemv)(const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(dgemv)(const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(qgemv)(const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(cgemv)(const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(zgemv)(const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(xgemv)(const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(
		strsv)(const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
	int BLASFUNC(
		dtrsv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
	int BLASFUNC(
		qtrsv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
	int BLASFUNC(
		ctrsv)(const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
	int BLASFUNC(
		ztrsv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
	int BLASFUNC(
		xtrsv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);

	int BLASFUNC(stpsv)(char*, char*, char*, int*, float*, float*, int*);
	int BLASFUNC(dtpsv)(char*, char*, char*, int*, double*, double*, int*);
	int BLASFUNC(qtpsv)(char*, char*, char*, int*, double*, double*, int*);
	int BLASFUNC(ctpsv)(char*, char*, char*, int*, float*, float*, int*);
	int BLASFUNC(ztpsv)(char*, char*, char*, int*, double*, double*, int*);
	int BLASFUNC(xtpsv)(char*, char*, char*, int*, double*, double*, int*);

	int BLASFUNC(
		strmv)(const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
	int BLASFUNC(
		dtrmv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
	int BLASFUNC(
		qtrmv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
	int BLASFUNC(
		ctrmv)(const char*, const char*, const char*, const int*, const float*, const int*, float*, const int*);
	int BLASFUNC(
		ztrmv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);
	int BLASFUNC(
		xtrmv)(const char*, const char*, const char*, const int*, const double*, const int*, double*, const int*);

	int BLASFUNC(stpmv)(char*, char*, char*, int*, float*, float*, int*);
	int BLASFUNC(dtpmv)(char*, char*, char*, int*, double*, double*, int*);
	int BLASFUNC(qtpmv)(char*, char*, char*, int*, double*, double*, int*);
	int BLASFUNC(ctpmv)(char*, char*, char*, int*, float*, float*, int*);
	int BLASFUNC(ztpmv)(char*, char*, char*, int*, double*, double*, int*);
	int BLASFUNC(xtpmv)(char*, char*, char*, int*, double*, double*, int*);

	int BLASFUNC(stbmv)(char*, char*, char*, int*, int*, float*, int*, float*, int*);
	int BLASFUNC(dtbmv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);
	int BLASFUNC(qtbmv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);
	int BLASFUNC(ctbmv)(char*, char*, char*, int*, int*, float*, int*, float*, int*);
	int BLASFUNC(ztbmv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);
	int BLASFUNC(xtbmv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);

	int BLASFUNC(stbsv)(char*, char*, char*, int*, int*, float*, int*, float*, int*);
	int BLASFUNC(dtbsv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);
	int BLASFUNC(qtbsv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);
	int BLASFUNC(ctbsv)(char*, char*, char*, int*, int*, float*, int*, float*, int*);
	int BLASFUNC(ztbsv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);
	int BLASFUNC(xtbsv)(char*, char*, char*, int*, int*, double*, int*, double*, int*);

	int BLASFUNC(ssymv)(const char*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(dsymv)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(qsymv)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(sspmv)(char*, int*, float*, float*, float*, int*, float*, float*, int*);
	int BLASFUNC(dspmv)(char*, int*, double*, double*, double*, int*, double*, double*, int*);
	int BLASFUNC(qspmv)(char*, int*, double*, double*, double*, int*, double*, double*, int*);

	int BLASFUNC(ssyr)(const char*, const int*, const float*, const float*, const int*, float*, const int*);
	int BLASFUNC(dsyr)(const char*, const int*, const double*, const double*, const int*, double*, const int*);
	int BLASFUNC(qsyr)(const char*, const int*, const double*, const double*, const int*, double*, const int*);

	int BLASFUNC(ssyr2)(const char*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						float*,
						const int*);
	int BLASFUNC(dsyr2)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(qsyr2)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(csyr2)(const char*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						float*,
						const int*);
	int BLASFUNC(zsyr2)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(xsyr2)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						double*,
						const int*);

	int BLASFUNC(sspr)(char*, int*, float*, float*, int*, float*);
	int BLASFUNC(dspr)(char*, int*, double*, double*, int*, double*);
	int BLASFUNC(qspr)(char*, int*, double*, double*, int*, double*);

	int BLASFUNC(sspr2)(char*, int*, float*, float*, int*, float*, int*, float*);
	int BLASFUNC(dspr2)(char*, int*, double*, double*, int*, double*, int*, double*);
	int BLASFUNC(qspr2)(char*, int*, double*, double*, int*, double*, int*, double*);
	int BLASFUNC(cspr2)(char*, int*, float*, float*, int*, float*, int*, float*);
	int BLASFUNC(zspr2)(char*, int*, double*, double*, int*, double*, int*, double*);
	int BLASFUNC(xspr2)(char*, int*, double*, double*, int*, double*, int*, double*);

	int BLASFUNC(cher)(char*, int*, float*, float*, int*, float*, int*);
	int BLASFUNC(zher)(char*, int*, double*, double*, int*, double*, int*);
	int BLASFUNC(xher)(char*, int*, double*, double*, int*, double*, int*);

	int BLASFUNC(chpr)(char*, int*, float*, float*, int*, float*);
	int BLASFUNC(zhpr)(char*, int*, double*, double*, int*, double*);
	int BLASFUNC(xhpr)(char*, int*, double*, double*, int*, double*);

	int BLASFUNC(cher2)(char*, int*, float*, float*, int*, float*, int*, float*, int*);
	int BLASFUNC(zher2)(char*, int*, double*, double*, int*, double*, int*, double*, int*);
	int BLASFUNC(xher2)(char*, int*, double*, double*, int*, double*, int*, double*, int*);

	int BLASFUNC(chpr2)(char*, int*, float*, float*, int*, float*, int*, float*);
	int BLASFUNC(zhpr2)(char*, int*, double*, double*, int*, double*, int*, double*);
	int BLASFUNC(xhpr2)(char*, int*, double*, double*, int*, double*, int*, double*);

	int BLASFUNC(chemv)(const char*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(zhemv)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(xhemv)(const char*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(chpmv)(char*, int*, float*, float*, float*, int*, float*, float*, int*);
	int BLASFUNC(zhpmv)(char*, int*, double*, double*, double*, int*, double*, double*, int*);
	int BLASFUNC(xhpmv)(char*, int*, double*, double*, double*, int*, double*, double*, int*);

	int BLASFUNC(snorm)(char*, int*, int*, float*, int*);
	int BLASFUNC(dnorm)(char*, int*, int*, double*, int*);
	int BLASFUNC(cnorm)(char*, int*, int*, float*, int*);
	int BLASFUNC(znorm)(char*, int*, int*, double*, int*);

	int BLASFUNC(sgbmv)(char*, int*, int*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(dgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(qgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(cgbmv)(char*, int*, int*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(zgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(xgbmv)(char*, int*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);

	int BLASFUNC(ssbmv)(char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(dsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(qsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(csbmv)(char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(zsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(xsbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);

	int BLASFUNC(chbmv)(char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(zhbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(xhbmv)(char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);

	/* Level 3 routines */

	int BLASFUNC(sgemm)(const char*,
						const char*,
						const int*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(dgemm)(const char*,
						const char*,
						const int*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(qgemm)(const char*,
						const char*,
						const int*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(cgemm)(const char*,
						const char*,
						const int*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(zgemm)(const char*,
						const char*,
						const int*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(xgemm)(const char*,
						const char*,
						const int*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(cgemm3m)(char*, char*, int*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(
		zgemm3m)(char*, char*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(
		xgemm3m)(char*, char*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);

	int BLASFUNC(sge2mm)(char*, char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(
		dge2mm)(char*, char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(cge2mm)(char*, char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(
		zge2mm)(char*, char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);

	int BLASFUNC(strsm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						float*,
						const int*);
	int BLASFUNC(dtrsm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(qtrsm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(ctrsm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						float*,
						const int*);
	int BLASFUNC(ztrsm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(xtrsm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);

	int BLASFUNC(strmm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						float*,
						const int*);
	int BLASFUNC(dtrmm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(qtrmm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(ctrmm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						float*,
						const int*);
	int BLASFUNC(ztrmm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);
	int BLASFUNC(xtrmm)(const char*,
						const char*,
						const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						double*,
						const int*);

	int BLASFUNC(ssymm)(const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(dsymm)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(qsymm)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(csymm)(const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(zsymm)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(xsymm)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(csymm3m)(char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(zsymm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(xsymm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);

	int BLASFUNC(ssyrk)(const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(dsyrk)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(qsyrk)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(csyrk)(const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(zsyrk)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(xsyrk)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(ssyr2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const float*,
						 const float*,
						 const int*,
						 const float*,
						 const int*,
						 const float*,
						 float*,
						 const int*);
	int BLASFUNC(dsyr2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);
	int BLASFUNC(qsyr2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);
	int BLASFUNC(csyr2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const float*,
						 const float*,
						 const int*,
						 const float*,
						 const int*,
						 const float*,
						 float*,
						 const int*);
	int BLASFUNC(zsyr2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);
	int BLASFUNC(xsyr2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);

	int BLASFUNC(chemm)(const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(zhemm)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(xhemm)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(chemm3m)(char*, char*, int*, int*, float*, float*, int*, float*, int*, float*, float*, int*);
	int BLASFUNC(zhemm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);
	int BLASFUNC(xhemm3m)(char*, char*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*);

	int BLASFUNC(cherk)(const char*,
						const char*,
						const int*,
						const int*,
						const float*,
						const float*,
						const int*,
						const float*,
						float*,
						const int*);
	int BLASFUNC(zherk)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);
	int BLASFUNC(xherk)(const char*,
						const char*,
						const int*,
						const int*,
						const double*,
						const double*,
						const int*,
						const double*,
						double*,
						const int*);

	int BLASFUNC(cher2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const float*,
						 const float*,
						 const int*,
						 const float*,
						 const int*,
						 const float*,
						 float*,
						 const int*);
	int BLASFUNC(zher2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);
	int BLASFUNC(xher2k)(const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);
	int BLASFUNC(cher2m)(const char*,
						 const char*,
						 const char*,
						 const int*,
						 const int*,
						 const float*,
						 const float*,
						 const int*,
						 const float*,
						 const int*,
						 const float*,
						 float*,
						 const int*);
	int BLASFUNC(zher2m)(const char*,
						 const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);
	int BLASFUNC(xher2m)(const char*,
						 const char*,
						 const char*,
						 const int*,
						 const int*,
						 const double*,
						 const double*,
						 const int*,
						 const double*,
						 const int*,
						 const double*,
						 double*,
						 const int*);

#ifdef __cplusplus
}
#endif

#endif
